/*************************************************
  * 描述：对话框私有实现
  *
  * File：cximessagebox_p.h
  * Author：dongyao@mozihealthcare.cn
  * Date：2025/9/25
  * Update：
  * ************************************************/

#ifndef CXIMESSAGEBOX_P_H
#define CXIMESSAGEBOX_P_H

#include <QDialogButtonBox>
#include <controls/messagebox/cximessagebox.h>
namespace Ui
{
	class CxiMessageBox;
}
class CxiMessageBoxPrivate : public QObject
{
	Q_OBJECT
	Q_DISABLE_COPY(CxiMessageBoxPrivate)
	Q_DECLARE_PUBLIC(CxiMessageBox)
public:
	explicit CxiMessageBoxPrivate(CxiMessageBox* p);
	~CxiMessageBoxPrivate() override;

	CxiMessageBox* q_ptr;// 指向公开类的指针

	// 初始化入口
	void init();

	// 私有方法
	void loadIcon(CxiMessageBox::Icon icon);
	void updateSize();
	void setIPTitle();
	void _init();

	// 私有数据成员
	Ui::CxiMessageBox* ui = nullptr;                                      // UI指针（原公开类的ui）
	CxiMessageBox::Icon icon = CxiMessageBox::NoIcon;                     // 消息图标
	QString title;                                                        // 窗口标题
	QString text;                                                         // 提示文本
	bool showAsIPTitle = true;                                            // 是否显示IP在标题
	bool model = true;                                                    // 是否模态
	bool useDefaultWindowFlags = false;                                   // 是否使用默认窗口标志
	CxiMessageBox::StandardButton clickedButton = CxiMessageBox::NoButton;// 点击的按钮
	CxiMessageBox::StandardButtons buttons = CxiMessageBox::NoButton;     // 按钮组
	const QSize ICON_SIZE = QSize(64, 64);                                // 图标固定大小

private slots:
	// 私有槽函数
	void onButtonClicked(QAbstractButton* button);
	void copyButtonClicked();
};
#endif//CXIMESSAGEBOX_P_H
